
package DAO;

import Entidad.Edificio;
import Singletons.Mensajes;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceException;

public class EdificioDAO {

    public void Crear(Edificio edificio,EntityManager em) throws PersistenceException {
        try{
            em.persist(edificio);
        }catch(Exception e){
            throw new PersistenceException(Mensajes.ERROR_CONEXION_BD);
        }
    }

    public Edificio Buscar(Long id,EntityManager em) throws PersistenceException {
        Edificio Edificio;
        try{
            Edificio=em.find(Edificio.class, id);
        }catch(Exception e){
            throw new PersistenceException(Mensajes.ERROR_CONEXION_BD);
        }
        return Edificio;
    }

    public void Actualizar(Edificio nuevo,EntityManager em) throws PersistenceException {
        try{
            em.merge(nuevo);
        }catch(Exception e){
            throw new PersistenceException(Mensajes.ERROR_CONEXION_BD);
        }
    }

    public ArrayList<Edificio> listaActual(EntityManager em) throws PersistenceException {
        ArrayList<Edificio> lista=new ArrayList<Edificio>();
        Query consulta = em.createQuery("SELECT u FROM Edificio u");
        try{
            List listaEdificios=consulta.getResultList();
            for(Object s:listaEdificios)
                lista.add((Edificio)s);
        }catch(NoResultException e){
            lista=new ArrayList<Edificio>();
        }catch(Exception e){
            throw new PersistenceException(Mensajes.ERROR_CONEXION_BD);
        }
        return lista;
    }

}